package cn.kgm.makeGodV2;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.time.temporal.ChronoField;

/**
 * 状态标签,可以添加有状态的标签(创建时间,销毁时间,堆叠层数,技能伤害倍数...)
 *
 * @Version 1.8
 * @Author: Kappi
 * @Date: 2025-9-16 14:12
 * @Description: cn.kgm.makeGodV2.TagMetadata
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TagMetaData {

    // 标签来源（例如：事件ID、物品ID、技能ID）
    private String source;
    // 开始时间（游戏时间）
    private long startTime;
    // 持续时间（游戏时间单位），null表示永久
    private Long duration;
    // 堆叠层数（例如：中毒3层）
    private int stackCount;

    public TagMetaData(String source, Long duration) {
        this.source = source;
        // 获取当前游戏时间;
        this.startTime = LocalDateTime.now().getLong(ChronoField.MILLI_OF_SECOND);
        this.duration = duration;
        this.stackCount = 1;
    }

    public boolean isExpired(long currentTime) {
        return duration != null && currentTime > (startTime + duration);
    }
}
